#ifndef __I2C_BOARD_H__
#define __I2C_BOARD_H__

#include "system.h"


#if defined(CONFIG_DTU_AI)	

#define SYSTEM_I2C_CLK_RCC          (RCC_PERIPHERAL_GPIOD)
#define SYSTEM_I2C_CLK_GPIO         (GPIOD)
#define SYSTEM_I2C_CLK_PIN          (GPIO_PIN_12)

#define SYSTEM_I2C_SDA_RCC          (RCC_PERIPHERAL_GPIOC)
#define SYSTEM_I2C_SDA_GPIO         (GPIOC)
#define SYSTEM_I2C_SDA_PIN          (GPIO_PIN_15)

#define I2C_CLK_OUT_MODE()          gpio_init(SYSTEM_I2C_CLK_GPIO, SYSTEM_I2C_CLK_PIN, GPIO_MODE_OUTPUT_PP_HIGH)
#define I2C_CLK_IN_MODE()           gpio_init(SYSTEM_I2C_CLK_GPIO, SYSTEM_I2C_CLK_PIN, GPIO_MODE_INPUT_PULL_UP)
#define I2C_CLK_OUT_HIGH()          gpio_write(SYSTEM_I2C_CLK_GPIO, SYSTEM_I2C_CLK_PIN, 1)
#define I2C_CLK_OUT_LOW()           gpio_write(SYSTEM_I2C_CLK_GPIO, SYSTEM_I2C_CLK_PIN, 0)

#define I2C_SDA_OUT_MODE()          gpio_init(SYSTEM_I2C_SDA_GPIO, SYSTEM_I2C_SDA_PIN, GPIO_MODE_OUTPUT_PP_HIGH)
#define I2C_SDA_IN_MODE()           gpio_init(SYSTEM_I2C_SDA_GPIO, SYSTEM_I2C_SDA_PIN, GPIO_MODE_INPUT_PULL_UP)
#define I2C_SDA_OUT_HIGH()          gpio_write(SYSTEM_I2C_SDA_GPIO, SYSTEM_I2C_SDA_PIN, 1)
#define I2C_SDA_OUT_LOW()           gpio_write(SYSTEM_I2C_SDA_GPIO, SYSTEM_I2C_SDA_PIN, 0)
#define I2C_SDA_READ()              gpio_read(SYSTEM_I2C_SDA_GPIO, SYSTEM_I2C_SDA_PIN)





void I2C_init(void);
void IIC_Start(void);
void IIC_Stop(void);
uint8_t IIC_Wait_Ack(void);
void IIC_Ack(void);   
void IIC_NAck(void);	  
void IIC_Send_Byte(uint8_t txd); 
uint8_t IIC_Read_Byte(uint8_t ack);





#endif
#endif
